:root {
	--main-width:   700px;
	--caption-gap:  5px;
	--canvas-color: #fcfcfcfc;
}

.workspace {
	flex-direction: column;
	width:          var(--main-width);
	gap:            10px;
}

.caption {
	font-weight:   bold;
	font-size:     24px;
	color:         #444;
	margin-bottom: var(--caption-gap);
}

.canvas-container {
	position: relative;
	width:    var(--main-width);
}

#canvasOverlay {
	position:       absolute;
	bottom:         10px;
	right:          10px;
	font-size:      12px;
	color:          #666;
	pointer-events: none;
	text-align:     right;
	z-index:        5;
	transition:     color 0.2s;
}

canvas {
	border:           none;
	background-color: var(--canvas-color);
	cursor:           crosshair;
	box-shadow:       0 0 10px rgba(0, 0, 0, 0.1);
	display:          block;
	width:            var(--main-width);
	outline:          none;
	border-radius:    4px;
}

.bottom-controls {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	width:           var(--main-width);
	margin-bottom:   40px;
}

.btn-group-left,
.btn-group-right {
	display: flex;
	gap:     10px;
}

button {
	padding:       10px 15px;
	cursor:        pointer;
	border-radius: 4px;
	border:        1px solid #ccc;
	background:    var(--canvas-color);
	font-size:     13px;
}

.btn-add {
	width:      105px;
	height:     40px;
	text-align: center;
}

.btn-misc {
	height:     40px;
	text-align: center;
}

.btn-symbol { font-size: 12px; }

button:hover:not(:disabled) { background: #f2f2f2; }

button:active:not(:disabled) { 
	background: #eaeaea; 
	box-shadow: inset 0 0 1.0px 0.5px #00000011
}

button:disabled {
	box-shadow:   none;
	cursor:       default;
	opacity:      0.75;
	background:   #ddd;
	border-color: #ccc;
	color:        #999;
}

.output-container {
	display:        flex;
	flex-direction: column;
	width:          var(--main-width);
}

.output-wrapper {
	position:   relative;
	width:      var(--main-width);
	height:     145px;
	box-sizing: border-box;
}

.output {
	width:         100%;
	height:        100%;
	padding:       10px;
	box-sizing:    border-box;
	white-space:   pre-wrap;
	font-family:   'Courier New', monospace;
	font-size:     12px;
	overflow-y:    auto;
	cursor:        pointer;
	user-select:   none;
	background:    #242426;
	color:         #DEDEDE;
	border-radius: 4px;
	border:        1px solid rgba(0, 0, 0, 0);
}

.flash:active { background: #242426DF; }

#outputOverlay {
	position:       absolute;
	bottom:         10px;
	right:          10px;
	font-size:      12px;
	color:          #999999;
	pointer-events: none;
}

#outputField:hover + #outputOverlay .emph {
	font-weight: bold; 
	color:       #DEB700;
}

.modal-overlay {
	position:        fixed;
	top:             0;
	left:            0;
	width:           100%;
	height:          100%;
	background:      rgba(0, 0, 0, 0.85);
	z-index:         1000;
	justify-content: center;
	align-items:     center;
}

.modal-content {
	background:     #D9D9DB;
	padding:        15px;
	border-radius:  8px;
	width:          455px;
	display:        flex;
	flex-direction: column;
	gap:            10px;
}

.modal-header {
	font-weight:   bold;
	font-size:     24px;
	color:         #444;
	margin-bottom: -5px;
}

.modal-textarea {
	width:         100%;
	height:        142px;
	font-family:   'Courier New', monospace;
	font-size:     12px;
	padding:       10px;
	box-sizing:    border-box;
	resize:        none;
	border:        1px solid rgba(0, 0, 0, 0);
	background:    #242426;
	color:         #DEDEDE;
	outline:       none;
	border-radius: 4px;
}

.modal-textarea::placeholder { color: #DEDEDE4D; }

.modal-footer {
	display:         flex;
	justify-content: flex-end;
	gap:             10px;
}
